Group by clause ===
=============
                              Group by clause is used to arrange similar data items into set of logical groups .
group by clause automatically reduces  number of rows in each group. 
group by clause is used in select statement .
Syntax:=

Select columnname ......
 From tablename 
Group by columnname;

? Write a query to display number of rows in each department from emp table by using group by clause.

Select deptno,count(*) from emp group by deptno;

Deptno.       Count(*)
10                   3
20                   5
30                   6

Write a query to display number of employees in each job from emp table by using group by clause


Select job,count(*) from emp group by job;

Job                     count(*)
Clerk                        4
Salesman               4
President                1
Manager                 3
Analyst                    2

Write a query to display min , max salaries from each department by using emp table through group by clause

Select deptno, min(sal),max(sal) from emp group by deptno;

Deptno     Min(sal)      Max(sal)
10                 1050           2850
20                 1200            3000
30                  1800           5100


Note:= 
            In all relational databases we can also use group by clause without using group functions.
EX. 
Select deptno from emp group by deptno;

Deptno
10 
20
30

Rule==
 1) other than group function columns specified after select statement then those all columns must be specified after group by clause otherwise Oracle server returns an error i.e. not a group by expression.

Ex1) 
Select deptno,job,sum(sal) from emp group by deptno,job;

Ex2) 
Select deptno,job from emp group by deptno,job;